package com.beiben.statistics.service;

import com.beiben.statistics.vo.LineDataVo;
import com.beiben.statistics.vo.NameValueVo;
import com.beiben.statistics.vo.RecordSearchParamVo;
import com.beiben.statistics.vo.WorkItemVo;
import com.beiben.work.process.domain.FileProcessUser;
import com.ruoyi.common.core.domain.entity.SysUser;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * Created by admin on 2020/10/9.
 */
public interface IWorkService {

    //查询统计所的总工作工时
    public List<NameValueVo> selectWorkDeptSuo(RecordSearchParamVo recordSearchParamVo) throws ParseException;

    //查询统计科室的总工作工时
    public List<NameValueVo> selectWorkDeptShi(RecordSearchParamVo recordSearchParamVo) throws ParseException;

    //查询统计所的平均工作工时
    public List<NameValueVo> selectAbilityDeptAverageSuo(RecordSearchParamVo recordSearchParamVo) throws ParseException;

    //查询统计科室的平均工作工时
    public List<NameValueVo> selectAbilityDeptAverageShi(RecordSearchParamVo recordSearchParamVo) throws ParseException;

    //查询人员总工作工时
    public List<NameValueVo> selectWorkTotalPeople(RecordSearchParamVo recordSearchParamVo) throws ParseException;

    //查询人员总工作饱和度
    public List<NameValueVo> selectWorkAvgPeople(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询人员总工作量近30天变化曲线
    public List<LineDataVo> selectWorkLinePeople(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询人员工作饱和度曲线（近30天）
    public List<LineDataVo> selectWorkAvgLinePeople(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询统计所的质量问题统计
    public List<NameValueVo> selectWorkQualityCount(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询统计科室的质量问题统计
    public List<NameValueVo> selectWorkQualityCountShi(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询统计组的质量问题统计
    public List<NameValueVo> selectWorkQualityCountZu(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询统计组的质量问题统计(排名前十)
    public List<NameValueVo> selectWorkQualityCountZuRank(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //按所统计总工作量（个数）
    public List<NameValueVo> selectWorkCountSuo(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //按科室统计总工作量（个数）
    public List<NameValueVo> selectWorkCountShi(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //按人员统计总工作量（个数）
    public List<NameValueVo> selectWorkCountPeople(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    //查询质量问题曲线（近30天）
    public List<NameValueVo> selectTotalLineQuality(RecordSearchParamVo recordSearchParamVo)throws ParseException;

    /**
     * 查询我的待办工作-日常工作
     */
    public List<FileProcessUser> selectMyWaitWorkList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 我的待办工作-项目工作
     *
     * @param recordSearchParamVo
     * @return
     */
    public List<FileProcessUser> selectMyWaitWorkProjectList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 我的代办工作统计
     *
     * @return
     */
    public Map<String, Object> selectCountWork(RecordSearchParamVo recordSearchParamVo);

    /**
     * 查询我的待办工作-日常工作-质量问题工作
     */
    public List<FileProcessUser> selectQualityWorkList(RecordSearchParamVo recordSearchParamVo);

    /**
     * 我的代办工作统计 - 质量问题
     *
     * @return
     */
    public Map<String, Object> selectQualityCountWork(RecordSearchParamVo recordSearchParamVo);
}
